package com.skt.domain.DTO;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

@Data
@Schema(description = "服装查询搜索参数")
public class CostumeQueryDTO {

    // 搜索相关（可选）
    @Schema(description = "搜索关键词")
    private String keyword;

    // 分页相关
    @NotNull
    @Schema(description = "页码", defaultValue = "1")
    @Min(1)
    private Integer pageNum = 1;

    @NotNull
    @Schema(description = "每页数量", defaultValue = "20")
    @Min(1) @Max(100)
    private Integer pageSize = 20;

    // 筛选条件
    @Schema(description = "分类ID")
    private Long categoryId;

    @Schema(description = "尺码")
    private String size;

    @Schema(description = "颜色")
    private String color;

    @Schema(description = "品牌")
    private String brand;

    @Schema(description = "最小日租金")
    private BigDecimal minRentalPrice;

    @Schema(description = "最大日租金")
    private BigDecimal maxRentalPrice;

    @Schema(description = "商家ID")
    private Long merchantId;

    @Schema(description = "状态筛选")
    private Byte status;

    @Schema(description = "排序字段")
    private String sortBy;

    @Schema(description = "排序方向")
    private String sortOrder = "desc";

    @Schema(description = "是否只显示有库存")
    private Boolean inStockOnly = false;

    @Schema(description = "库存")
    private Integer stock;
}